package com.chinaedu.oc.serv.product;

import com.chinaedu.oc.po.dto.PubOutputDto;
import com.chinaedu.oc.po.product.dto.AddProductInput;
import com.chinaedu.oc.po.product.dto.ProductInput;
import com.chinaedu.oc.po.product.dto.QueryProductInput;
import com.chinaedu.oc.po.product.dto.QueryProductOutput;
import com.chinaedu.oc.util.annotation.Master;
import com.chinaedu.oc.util.annotation.Slaver;
import com.chinaedu.oc.util.common.CheckParamException;

/**
 * 产品接口
 * @Description: TODO
 * @author A18ccms a18ccms_gmail_com 
 * @date 2017年5月26日 下午12:16:18 
 *
 */
public interface IProduct {
	/**
	 * 添加产品
	 * @Description: TODO
	 * @param @param input
	 * @param @return
	 * @param @throws CheckParamException    
	 * @return PubOutputDto    返回类型 
	 * @throws
	 */
	@Master
	PubOutputDto addProduct(AddProductInput input) throws CheckParamException;
	/**
	 * 查询产品
	 * @Description: TODO
	 * @param @param input
	 * @param @return    
	 * @return QueryProductOutput    返回类型 
	 * @throws
	 */
	@Slaver
	QueryProductOutput queryProduct(QueryProductInput input);
	/**
	 * 审核产品
	 * @Description: TODO
	 * @param @param input
	 * @param @return    
	 * @return PubOutputDto    返回类型 
	 * @throws
	 */
	@Master
	PubOutputDto reviewProduct(ProductInput input);
	/**
	 * 推送产品
	 * @Description: TODO
	 * @param @param input
	 * @param @return    
	 * @return PubOutputDto    返回类型 
	 * @throws
	 */
	@Master
	PubOutputDto toCommodity(ProductInput input);
}
